package tx.os3.clientserver.client.model;

public interface ServerModel {

    public enum ServerStatus {
        CONNECTED {
            public String toString() {
                return "Connected to server";
            }
        },
        DISCONNECTED {
            public String toString() {
                return "Not connected to server";
            }
        }
    };

    /**
     * Gets the current status of the server.
     * 
     * @return Current server status.
     */
    public ServerStatus getStatus();

    /**
     * Sets the current status of the server.
     * 
     * @param status
     *            The status to set, cannot be null.
     */
    public void setStatus(ServerStatus status);

    /**
     * Sets textual information about the server, such as name and version.
     * 
     * @param serverInfo
     *            The information to set, cannot be null.
     */
    public void setServerInfo(String serverInfo);

    /**
     * Gets information about the server.
     * 
     * @return Most recent server information.
     */
    public String getServerInfo();

}
